package com.papers.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.papers.common.annotation.ExcelDictFormat;
import com.papers.common.convert.ExcelDictConvert;
import lombok.Data;

import java.util.Date;

@Data
@ExcelIgnoreUnannotated
public class TJuanCourseListVo {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ExcelIgnore
    @ExcelProperty(value = "ID")
    private String courseId;

    /**
     * 专业ID
     */
    @ExcelIgnore
    @ExcelProperty(value = "专业ID")
    private String majorId;

    /**
     * 院系ID
     */
    @ExcelIgnore
    @ExcelProperty(value = "院系ID")
    private String departId;

    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "院系名称")
    private String depart1;

    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "部系名称")
    private String depart2;

    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "教研室名称")
    private String depart3;
    /**
     * 题库编号
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "题库编号")
    private String courseCode;

    /**
     * 题库名称
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "题库名称")
    private String courseSubject;

    /**
     * 题库类型
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelDictFormat(readConverterExp = "1=题库,2=卷库")
    @ExcelProperty(value = "题库类型",converter = ExcelDictConvert.class)
    private String courseType;

    /**
     * 建设方式
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelDictFormat(readConverterExp = "1=自建,2=采购")
    @ExcelProperty(value = "建设方式",converter = ExcelDictConvert.class)
    private String courseConstruction;

    /**
     * 题卷量
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "题卷量")
    private String courseCount;

    /**
     * 创建时间
     */
    @DateTimeFormat("YYYY-MM-DD")
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "首建日期")
    private Date createdTime;

    /**
     * 更新时间
     */
    @DateTimeFormat("YYYY-MM-DD")
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "修订日期")
    private Date updatedTime;

    /**
     * 负责人
     */
    @ColumnWidth(15)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "负责人")
    private String person;

    /**
     * 适用类型层次
     */
    @ColumnWidth(18)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelDictFormat(readConverterExp = "1=本科,2=专科")
    @ExcelProperty(value = "适用层次类型",converter = ExcelDictConvert.class)
    private String courseHierarchy;

    /**
     * 适用院系
     */
    @ColumnWidth(18)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "适用院系")
    private String departName;
    /**
     * 适用专业
     */
    @ColumnWidth(18)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "适用专业")
    private String majorName;

    /**
     * 适用课程
     */
    @ColumnWidth(18)
    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
    @ExcelProperty(value = "适用课程")
    private String course;

    private String majorCode;

    /**
     * 描述
     */
    @ExcelIgnore
    @ExcelProperty(value = "描述")
    private Long courseDes;

    /**
     * 创建人
     */
    @ExcelIgnore
    @ExcelProperty(value = "创建人")
    private String createdBy;

    /**
     * 更新人
     */
    @ExcelIgnore
    @ExcelProperty(value = "更新人")
    private String updatedBy;

    private String department;
}
